package cc.lucien;

import java.lang.reflect.Constructor;

public class Demo02 {
    public static void main(String[] args) {
        Class<Student> c1 = Student.class;
        // 获取所有 public 的构造方法
        Constructor<Student>[] consts = (Constructor<Student>[]) c1.getConstructors();
        for (int i = 0; i < consts.length; i++) {
            System.out.println(consts[i]);
        }

        // 根据参数类型获取某个 public 构造方法
        try {
            Constructor con = c1.getConstructor(String.class, int.class);
            System.out.println(con);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }

        System.out.println("-------------------------------------");

        // 获取所有声明的构造方法
        consts = (Constructor<Student>[]) c1.getDeclaredConstructors();
        for (int i = 0; i < consts.length; i++) {
            System.out.println(consts[i]);
        }

        // 根据参数类型获取某个构造方法
        try {
            Constructor<Student> con = c1.getDeclaredConstructor();
            System.out.println(con);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }

    }

}
